[C] Decompositor de números em fatores primos
Publicado por Enzo de Brito Ferber 27/06/2007
[ Hits: 10.439 ]
Homepage: http://www.maximasonorizacao.com.br
Como o nome já diz, um programa escrito em C, que decompõe um número qualquer em fatores primos e exibe estes números para o usuário.
/* * Programa: Decompositor de numeros * Arquivo : decom_primes.c * Autor : Enzo Ferber 'Slackware_10' */ #include <stdio.h> #include <stdlib.h> #define TRUE 1 #define FALSE 0 int *lista_primos(int size){ int prime, i=0, a, b; int *list = (int*)malloc(size*sizeof(int)); if(!list){ printf("[-] Erro ao alocar memoria.\n"); printf("[-] Abortando...\n"); exit(0); } for(a=2;a<size;a++){ prime = FALSE; for(b=1;b<=a;b++){ if(b == a) prime = TRUE; if(((a%b)==0) && (b != 1)) break; } if(prime) list[i] = a; if(prime) i += 1; } list[i] = 0x0; return list; } int *fatores_primos(int num){ int *lista = lista_primos(num+1); int *fatores = (int*)malloc(num*sizeof(int)); register int i; int div_atual, fat_atual, list_ref, ref; ref = num; fat_atual = 0; list_ref = 0; div_atual = lista[list_ref]; for(i=0; i<num; i++){ if(ref == 1){ fatores[fat_atual] = 1; break; } if((ref % div_atual) == 0){ ref = ref / div_atual; fatores[fat_atual] = div_atual; fat_atual++; } if((ref % div_atual) != 0) div_atual = lista[++list_ref]; } free(lista); fatores[fat_atual+1] = 0x0; return fatores; } int main(int argc, char *argv[]){ int *list; if(argc != 2){ printf("[-] Uso: %s <numero_a_fatorar>\n", argv[0]); printf("[-] Abortando...\n"); exit(0); } list = fatores_primos(atoi(argv[1])); while(*list) printf("%d\n", *list++); return 0; }
Determinando a posicão de ocorrencia de uma string em outra
Nenhum coment�rio foi encontrado.
O que é o THP na configuração de RAM do Linux e quando desabilitá-lo
Comparação entre os escalonadores BFQ e MQ-Deadline (acesso a disco) no Arch e Debian
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Deixando o Plasma6 mais fluido no Linux
Como unir duas coleções de ROMs preservando as versões traduzidas (sem duplicatas)
Isso acontece com vcs também? (7)
Problema com audio apos upgrade (10)
Instalação automatizada do Debian 12 em UEFI (2)